/*
 * @Author: LiuShuang
 * @Date: 2023-03-07 11:03:08
 * @FilePath: \network\src\components\js\TimeCalculation.js
 * @Description:
 */
export default {

	// 获取当前年
	getYeartData() {
		let date = new Date();
		const year = date.getFullYear();
		console.log("year",year)
		return new Date(`${year}-01-01`);
	},

	// 获取当前年
	getYeartData1() {
		let date = new Date();
		const year = date.getFullYear();
		return year;
	},

	getWeeksInMonth(year, month) {
		// 创建该月第一天的日期对象
		const firstDay = new Date(year, month - 1, 1);
		// 获取该月第一天是星期几（0 表示星期日，1 - 6 表示星期一 - 星期六）
		const firstDayOfWeek = firstDay.getDay();
		// 创建该月最后一天的日期对象
		const lastDay = new Date(year, month, 0);
		// 获取该月的总天数
		const daysInMonth = lastDay.getDate();
		// 计算该月的总周数
		let weeks = Math.ceil((firstDayOfWeek + daysInMonth) / 7);
		return weeks;
	},


// day 传-1表始前一天，传1表始后一天
	// JS获取指定日期的前一天，后一天
	getMonthData() {
		var dd = new Date();
		dd.setDate(dd.getDate());
		var y = dd.getFullYear();
		var m = dd.getMonth() + 1;
		console.log("月",m)
		return m;
	},

	// day 传-1表始前一天，传1表始后一天
	// JS获取指定日期的前一天，后一天
	getNextData(day) {
		var dd = new Date();
		dd.setDate(dd.getDate() + day);
		var y = dd.getFullYear();
		var m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
		var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
		return y + "-" + m + "-" + d;
	},

	objectToQueryString(obj) {
		const queryParams = [];
		for (const key in obj) {
			if (obj.hasOwnProperty(key)) {
				queryParams.push(`${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`);
			}
		}
		return queryParams.join('&');
	},

	/**
	 * nextYear：为间隔,如1表示一年后，2表示两年后
	 */
	getAfterNYear(nextYear) {
		const dd = new Date()
		var year = dd.getFullYear() + nextYear;
		var month = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
		var day = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
		//考虑二月份场景，若N年后的二月份日期大于该年的二月份的最后一天，
		//则取该年二月份最后一天
		if (month == '02' || month == 2) {
			var monthEndDate = new Date(year, month, 0).getDate();
			if (parseInt(day) > monthEndDate) {
				//为月底时间
				//取两年后的二月份最后一天
				day = monthEndDate;
			}
		}
		return `${year}-${month}-${day}`;
	},


	/**
	 *获取下一个月的输入日期
	 *{param:DateTime} date 输入日期(YYYY-MM-DD)
	 *{param:number } monthNum 月数
	 */
	getNextMonthDay(date, monthNum) {
		var dateArr = date.split('-');
		var year = dateArr[0]; //获取当前日期的年份
		var month = dateArr[1]; //获取当前日期的月份
		var day = dateArr[2]; //获取当前日期的日
		var days = new Date(year, month, 0);
		days = days.getDate(); //获取当前日期中的月的天数
		var year2 = year;
		var month2 = parseInt(month) + parseInt(monthNum);
		if (month2 > 12) {
			year2 = parseInt(year2) + parseInt((parseInt(month2) / 12 == 0 ? 1 : parseInt(month2) / 12));
			month2 = parseInt(month2) % 12;
		}
		var day2 = day;
		var days2 = new Date(year2, month2, 0);
		days2 = days2.getDate();
		if (day2 > days2) {
			day2 = days2;
		}
		if (month2 < 10) {
			month2 = '0' + month2;
		}

		var t2 = year2 + '-' + month2 + '-' + day2;
		return t2;
	},

	/**
	 * nextYear：为间隔,如1表示一年后，2表示两年后
	 */
	getDataAfterNYear(data,nextYear) {
		var dateArr = data.split('-');
		var year = dateArr[0]; //获取当前日期的年份
		var month1 = dateArr[1]; //获取当前日期的月份
		var day1 = dateArr[2]; //获取当前日期的日
		var year = parseInt(year) + nextYear;
		var month = parseInt(month1) < 10 ? "0" + parseInt(month1) : month1;
		var day = parseInt(day1) < 10 ? "0" + parseInt(day1) : day1;
		//考虑二月份场景，若N年后的二月份日期大于该年的二月份的最后一天，
		//则取该年二月份最后一天
		if (month == '02' || parseInt(month) == 2) {
			var monthEndDate = new Date(year, month, 0).getDate();
			if (parseInt(day) > monthEndDate) {
				//为月底时间
				//取两年后的二月份最后一天
				day = monthEndDate;
			}
		}
		return `${year}-${month}-${day}`;
	},

	getCurrentDateTime() {
		const date = new Date();
		const year = date.getFullYear();
		const month = ("0" + (date.getMonth() + 1)).slice(-2);
		const day = ("0" + date.getDate()).slice(-2);
		const hours = ("0" + date.getHours()).slice(-2);
		const minutes = ("0" + date.getMinutes()).slice(-2);
		const seconds = ("0" + date.getSeconds()).slice(-2);
		return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
	},

	getCurrentDateTime1() {
		const date = new Date();
		const year = date.getFullYear();
		const month = ("0" + (date.getMonth() + 1)).slice(-2);
		const day = ("0" + date.getDate()).slice(-2);
		const hours = ("0" + date.getHours()).slice(-2);
		const minutes = ("0" + date.getMinutes()).slice(-2);
		const seconds = ("0" + date.getSeconds()).slice(-2);
		return `${year}年${month}月${day}日 ${hours}:${minutes}`;
	},

	/**
	 * 获取当前星期，返回中文星期名称
	 * @returns {string} 中文星期名称
	 */
	getCurrentWeekDay() {
		const now = new Date();
		const weekDayIndex = now.getDay();
		const weekDays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
		return weekDays[weekDayIndex];
	}
}

